#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>
typedef int DLDataType;
struct DListNode
{
	struct DListNode* next;
	struct DListNode* prev;
	DLDataType data;
};
typedef struct DListNode DListNode;
DListNode* DLInit();
bool DLEmpty(DListNode* phead);
void DLDestroy(DListNode* phead);
void DLPushBack(DListNode* phead, DLDataType x);
void DLPopBack(DListNode* phead);
void DLPrint(DListNode* phead);
void DLPushFront(DListNode* phead, DLDataType x);
void DLPopFront(DListNode* phead);
DListNode* DLFind(DListNode* phead, DLDataType x);
void DLInsert(DListNode* pos, DLDataType x);
void DLErase(DListNode* pos);